package cn.ichiva.common.io;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by game group on 2020/12/9.
 */
public class FilesPlus {

    /**
     * 获取文件夹下的所有文件
     *
     * 文件夹深度不能超过 100
     * @param dir
     * @return
     */
    public static List<File> allFiles(File dir){
        ArrayList<File> files = new ArrayList<>();
        allFiles(0,dir,files);
        return files;
    }

    private static void allFiles(int i, File dir, ArrayList<File> files) {
        if(i >= 100) throw new ArrayIndexOutOfBoundsException("文件夹深度超过100");
        for (File item : dir.listFiles()) {
            if(item.isDirectory()) allFiles(i + 1,item,files);
            else files.add(item);
        }
    }

    private static List<File> allFiles(String dir) {
        return allFiles(new File(dir));
    }

}
